home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue37 / DynArr / Array7U.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1998-07-04  |  1.8 KB  |  82 lines

  1. unit Array7U;
  2.  
  3. interface
  4.  
  5. uses
  6.   WinProcs, WinTypes, Messages, SysUtils, Classes, Graphics, Controls,
  7.   Forms, Dialogs, Grids, StdCtrls;
  8.  
  9. type
  10.   TArray7MainForm = class(TForm)
  11.     ListBox1: TListBox;
  12.     btnResizeArray: TButton;
  13.     btnFillArray: TButton;
  14.     procedure FormCreate(Sender: TObject);
  15.     procedure btnResizeArrayClick(Sender: TObject);
  16.     procedure btnFillArrayClick(Sender: TObject);
  17.   private
  18.     MyArray: Variant;
  19.     procedure DisplayArray;
  20.   end;
  21.  
  22. var
  23.   Array7MainForm: TArray7MainForm;
  24.  
  25. implementation
  26.  
  27. {$R *.DFM}
  28.  
  29. procedure TArray7MainForm.FormCreate(Sender: TObject);
  30. var
  31.   Tmp: Integer;
  32. begin
  33.   Tmp := StrToInt(InputBox(
  34.       'Enter your array dimensions',
  35.       'Number of elements:', '10'));
  36.   MyArray := VarArrayCreate([0, Pred(Tmp)], varInteger);
  37.   btnFillArray.Click; { Pretend to push the array filling button }
  38.   DisplayArray
  39. end;
  40.  
  41. procedure TArray7MainForm.btnResizeArrayClick(Sender: TObject);
  42. var
  43.   Tmp: Integer;
  44. begin
  45.   Tmp := StrToInt(InputBox(
  46.     'Enter your new array dimensions',
  47.     'Number of elements:', '20'));
  48.   VarArrayRedim(MyArray, Pred(Tmp));
  49.   DisplayArray
  50. end;
  51.  
  52. procedure TArray7MainForm.btnFillArrayClick(Sender: TObject);
  53. var
  54.   Loop: Integer;
  55. begin
  56.   for Loop := VarArrayLowBound(MyArray, 1) to
  57.               VarArrayHighBound(MyArray, 1) do
  58.     MyArray[Loop] := Loop;
  59.   DisplayArray
  60. end;
  61.  
  62. procedure TArray7MainForm.DisplayArray;
  63. var
  64.   Loop: Integer;
  65. begin
  66.   with ListBox1, Items do
  67.   begin
  68.     BeginUpdate;
  69.     try
  70.       Clear;
  71.       for Loop := VarArrayLowBound(MyArray, 1) to
  72.                   VarArrayHighBound(MyArray, 1) do
  73.         Add(IntToStr(MyArray[Loop]));
  74.       ItemIndex := VarArrayHighBound(MyArray, 1)
  75.     finally
  76.       EndUpdate
  77.     end
  78.   end
  79. end;
  80.  
  81. end.
  82.